package threadTest;

import org.apache.ibatis.cache.decorators.SynchronizedCache;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.*;
import java.util.concurrent.locks.Lock;

public class test01 {

    public static void main(String[] arsg){
        ExecutorService threadPool = new ThreadPoolExecutor(
                5,// 核心线程数
                5,// 最大线程数（这里设置为与核心线程数相同）
                0L,// 空闲线程存活时间（设置为0表示线程将一直存活直到线程池被关闭）
                TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<>());


        for (int i = 0; i < 100; i++) {
            int finalI = i;
            threadPool.submit(()->{
                testt(finalI);
            });
        }

        threadPool.shutdown();

    }


    public static synchronized void testt(int i ){
        System.out.println(Thread.currentThread().getName()+ " 处理信息  "+ i);
    }

    //// 更新用户列表信息的方法
    //public void updateUserList(List<User> users) {
    //    for (User user : users) {
    //        threadPool.submit(() -> userService.updateUser(user));
    //    }
    //    // 在所有任务提交后，关闭线程池
    //    threadPool.shutdown();
    //    try {
    //        if (!threadPool.awaitTermination(1, TimeUnit.HOURS)) {
    //            System.err.println("线程池未在规定时间内完成所有任务");
    //        }
    //    } catch (InterruptedException e) {
    //        Thread.currentThread().interrupt();
    //        e.printStackTrace();
    //    }
    //}
}
